package io;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 *IO:Input和Output
 * Java将输入和输出用"流Stream"表达,分为输入流和输出流
 * 我们可以将它们想象为连接我们的程序和另一个设备之间的管道,通过他们可以读写设备
 * Java将输入流和输出流定义了两个对应的超类InputStream和OutputStream
 * 1)InputStream:输入流,方向是从外界到程序的方向,用于读取数据的流,是一个抽象类,定义读取字节的相关方法
 * 2)OutputStream:输出流,方向是从外界到程序的方向,用于写出数据的流,是一个抽象类,定义读取字节的相关方法
 *
 * 文件流:FileInputStream和FileOutputStream,继承InputStream和OutputStream超类
 *
 */
public class FOSDemo {
    public static void main(String[] args) throws IOException {
        File file = new File("fos.dat");
        FileOutputStream fos = new FileOutputStream(file);

        //文件流常用的构造器
        //1)FileOutputStream(String fileName)
        //2)FileOutputStream(File file)

        //FileOutputStream fos=new FileOutputStream("fos.dat");
        //文件流创建时如果指定的文件不存在则会自动创建,前提是该文件的目录必须存在,否则会报异常
        fos.write(1);//表示像fos.dat文件中写了1个字节,输出的是1的二进制的"低八位";00000001
        fos.write(2);//表示又写了一个字节,输出的是2的二进制的"低八位";00000010
        System.out.println("写出完毕");
        fos.write(-1);//输出-1的二进制的"低八位",11111111
        fos.write(256);//输出256二进制的"低八位",00000000,所以读取结果为零
        fos.close();
    }
}
